package 二分查找;

import java.util.Arrays;

public class 搜索旋转排序数组 {

    public int search(int[] nums, int target) {
       int left=0,right=nums.length-1;
       while (left<=right){
           int mid = left+(right-left)/2;
           if (nums[mid]==target)
               return mid;
           //说明右边部分是有序的，进行二分
           else if (nums[mid]<nums[right]){
               if (nums[mid]<target && target<=nums[right]){
                   left = mid+1;
               }
               else
                   right = mid-1;
           }
           //左边有序，进行二分
           else {
               if (nums[left]<=target && nums[mid]>target){
                   right=mid-1;
               }
               else
                   left = mid+1;
           }
       }
       return -1;
    }
}
